/**
 * 
 */
package ads.engenharia.dal;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import ads.engenharia.entity.Course;
import ads.engenharia.entity.Discipline;
import ads.engenharia.entity.Professor;
import ads.engenharia.util.Schedule;

/**
 * @author Lanedraex
 *
 */
public class DisciplineDAO {

	private EntityManager em = new EntityManager() {

		@Override
		public Object treatResultSet(ResultSet resultSet) throws SQLException {
			Discipline discipline = new Discipline();

			return discipline;
		}
	};

	/**
	 * Saves discipline.
	 * 
	 * @param discipline
	 * @throws SQLException
	 */
	public void save(Discipline discipline) throws SQLException {

	}

	/**
	 * Deletes discipline.
	 * 
	 * @param discipline
	 * @throws SQLException
	 */
	public void delete(Discipline discipline) throws SQLException {

	}

	/**
	 * Deletes all disciplines.
	 * 
	 * @throws SQLException
	 */
	public void deleteAll() throws SQLException {

	}

	/**
	 * Updates discipline.
	 * 
	 * @param discipline
	 * @throws SQLException
	 */
	public void update(Discipline discipline) throws SQLException {

	}

	/**
	 * Searches for discipline.
	 * 
	 * @param discipline
	 * @return discipline
	 * @throws SQLException
	 */
	public Discipline search(Discipline discipline) throws SQLException {

		return null;
	}

	/**
	 * Searches all disciplines.
	 * 
	 * @return List of disciplines
	 * @throws SQLException
	 */
	public ArrayList<Discipline> searchAll() throws SQLException {

		return null;
	}

	public Discipline searchById(int id) throws SQLException {

		return null;
	}

	public ArrayList<Discipline> searchByName(String name) throws SQLException {

		return null;
	}

	public ArrayList<Discipline> searchByCourse(Course course)
			throws SQLException {

		return null;
	}

	public ArrayList<Discipline> searchByProfessor(Professor professor)
			throws SQLException {

		return null;
	}

	public ArrayList<Discipline> searchBySchedule(Schedule schedule)
			throws SQLException {

		return null;
	}

	/**
	 * Searches by discipline total duration.
	 * @param duration
	 * @return List of disciplines
	 * @throws SQLException
	 */
	public ArrayList<Discipline> searchByDuration(int duration)
			throws SQLException {

		return null;
	}

	/**
	 * Searches for disciplines that have professors or not.
	 * 
	 * @param status
	 * @return List of disciplines
	 * @throws SQLException
	 */
	public ArrayList<Discipline> searchByStatus(boolean status)
			throws SQLException {

		return null;
	}
}
